package com.gcb.common.utils;

import com.gcb.common.core.domain.vo.CommonEnum;
import lombok.extern.slf4j.Slf4j;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Slf4j
public class EnumUtils {

    public static List<CommonEnum> enumToList(Class<?> enumClass) {
        List<CommonEnum> list = new ArrayList<>();
        Field[] fields = enumClass.getFields();
        for (Field field : fields) {
            if (field.getType().isEnum()) {
                try {
                    Map<String, String> map = new HashMap<>();
                    Object enumValue = field.get(null);
                    String info = enumValue.getClass().getDeclaredMethod("getInfo").invoke(enumValue).toString();
                    Integer code = Integer.parseInt(enumValue.getClass().getDeclaredMethod("getCode").invoke(enumValue).toString());
                    CommonEnum commonEnum = new CommonEnum();
                    commonEnum.setCode(code);
                    commonEnum.setInfo(info);
                    list.add(commonEnum);
                } catch (Exception e) {
                    log.error("枚举转换集合异常:{}", e.getMessage());
                }
            }
        }
        return list;
    }

}
